package EndPoints

import (
	"context"
	log "github.com/corgi-kx/logcustom"
	"github.com/go-kit/kit/endpoint"
	"go-micro-kit/Services"
)
// 定义请求和返回部分
// 这里也可以定义多个request，至于请求用哪个是transport具体return决定的
type  UserRequest struct {
	Username string `json:"username"`
	Password string `json:"password"`
}
type  UserResponse struct {
	Result string `json:"result"`
}
// 返回的endpoint 本质就是装饰器模式的函数
func LoginEndPoint(service Services.UserService) endpoint.Endpoint  {
	return func(ctx context.Context, request interface{}) (response interface{}, err error) {
		r:=request.(UserRequest)
		loginResult := service.Login(r.Username, r.Password)
		log.Info(r.Username)
		log.Info(r.Password)
		// 也可以在这里接收Method,判断是GET还是POST,来实现RESTful
		if loginResult{
			return UserResponse{Result: "正确"},nil
		}else{
			return UserResponse{Result: "错误"},nil
		}

	}
}